package com.example.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Component
public class JWTUtils {
    public  String GetJWT(Map<String, Object> claims) {
        // JWT加密生成token
        return Jwts.builder()
                .signWith(SignatureAlgorithm.HS256, "zhangsan")// 签名算法HS256，加密字符串;
                .setClaims(claims)// 自定义加密内容
                .setExpiration(new Date(System.currentTimeMillis() + 3600 * 1000))// 设置有效期为1h
                .compact();// 生成jwt返回字符串
    }
    // JWT解密
    public Claims ParseJWT(String str){
        return Jwts.parser()
                .setSigningKey("zhangsan")
                .parseClaimsJws(str)
                .getBody();
    }
}
